/*
 * mensaje-consulta.h
 *
 *  Created on: 20/09/2011
 *      Author: guido
 */

#ifndef MENSAJE_CONSULTA_H_
#define MENSAJE_CONSULTA_H_

#include "mensaje.h"
#include "terminales-server.h"
#include <iostream>

class MensajeConsulta: public Mensaje {
public:
	MensajeConsulta();
	~MensajeConsulta();
	virtual void serializar(char* &bytes, int &tamanyo) = 0;
	virtual void deserializar(char* bytes) = 0;

	/* Se utiliza cuando se deserializa del archivo en formato
	 * de texto del disco */
	virtual void deserializar(std::string entrada) = 0;

	/* Metodo de double-dispatch de invocacion a la respuesta
	 * de mensaje. */
	virtual void responder(TerminalesServer &server) = 0;

	/*Se utiliza para parsear el string de entrada en formato
	 * de texto de un archivo de disco.
	 * Devuelve lo que haya hasta el primer separador, y lo
	 * borra de entrada */
	std::string siguienteCampo(std::string& entrada);
};



#endif /* MENSAJE_CONSULTA_H_ */
